﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace VsSpeakerCompanion
{
    /// <summary>
    /// Provides the widgets that will be added to the sidebar. 
    /// The provider should be exported as <see cref="IWidgetProvider"/> using <see cref="System.ComponentModel.Composition.ExportAttribute"/> and it should provide a Name at least using the <see cref="WidgetAttribute"/>
    /// The widgets are added in the same order they are enumerated by the GetWidgets() method.
    /// A provider can be ordered before or after other providers using the <see cref="WidgetAttribute"/>
    /// </summary>
    public interface IWidgetProvider
    {
        /// <summary>
        /// Returns a collection of widgets 
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        IEnumerable<IWidget> GetWidgets(Context context);
    }
}
